//package com.yunche.postloan.utils;
//
//import org.apache.commons.collections.CollectionUtils;
//import org.apache.poi.hssf.usermodel.HSSFCellStyle;
//import org.apache.poi.ss.usermodel.*;
//import org.apache.poi.ss.util.CellRangeAddress;
//import org.apache.poi.xssf.usermodel.*;
//
//import java.util.*;
//
///**
// * @Desc TODO
// * ----------------
// * @CLASS_NAME: ExcelUtil1
// * ----------------
// * @Author jovi
// * ----------------
// * @Date 2019-12-03 19:50
// */
//public class ExcelUtil1 {
//
//    public static XSSFWorkbook createXSSFWorkbook() {
//        /**
//         * 1.动态组装Excel表头列标题
//         */
//        // 根据环节ID查询环节对应的导入模板信息
//        List<Map<String, Object>> templateList = new ArrayList<>();
//        Map<String, Object> mapvalue = new HashMap<>();
//        mapvalue.put("LABEL", "你好");
//        Map<String, Object> mapvalue1 = new HashMap<>();
//        mapvalue1.put("LABEL", "你不好");
//        templateList.add(mapvalue);
//        templateList.add(mapvalue1);
//
//
//        List<Map<String, Object>> titleHeaders = new ArrayList<>();
//        Map<String, Object> xhMap = new HashMap<>();
//        Map<String, Object> xmMap = new HashMap<>();
//        xhMap.put("TYPE", "FIXED");
//        xhMap.put("VALUE", "EXCEL_HEADER_XH");
//        xmMap.put("TYPE", "FIXED");
//        xmMap.put("VALUE", "EXCEL_HEADER_NAME");
//        titleHeaders.add(xmMap);
//        titleHeaders.add(xhMap);
//
//
//        if (CollectionUtils.isNotEmpty(templateList)) {
//            HashMap<String, Object> cpxmcMap;
//            for (Map<String, Object> map : templateList) {
//                // 测评项名称
//                String cpxmc = null != map.get("LABEL") ? map.get("LABEL").toString() : "";
//                cpxmcMap = new HashMap<>();
//                cpxmcMap.put("TYPE", "LABEL");
//                cpxmcMap.put("VALUE", cpxmc);
//                titleHeaders.add(cpxmcMap);
//            }
//        }
//
//        /**
//         * 2.设置Excel工作簿信息、Excel样式等
//         */
//        // 创建一个工作簿(Excel的文档对象)
//        XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
//        // 创建一个Sheet(Excel的表单)
//        XSSFSheet xssfSheet = xssfWorkbook.createSheet("测评项分数导入模板表");
//        // 创建Excel表头(rowNum:0表示表头),从0开始
//        XSSFRow xssfRow = xssfSheet.createRow(1);
//        // 设置缺省列高
//        xssfSheet.setDefaultRowHeightInPoints(25);
//        // 设置行的高度
//        xssfRow.setHeightInPoints(25);
//        // 格子单元样式
//        XSSFCellStyle xssfCellStyle = xssfWorkbook.createCellStyle();
//        XSSFFont xssfFont = xssfWorkbook.createFont();
//        // 设置字体加粗
//        xssfFont.setBold(true);
//        // 设置“宋体”字体
//        xssfFont.setFontName("宋体");
//        // 设置字体大小(14号)
//        xssfFont.setFontHeightInPoints((short) 14);
//        xssfCellStyle.setFont(xssfFont);
//        // 设置水平居中
//        xssfCellStyle.setAlignment(HorizontalAlignment.CENTER);
//        // 设置垂直居中
//        xssfCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//        // 设置表格默认列宽度为15个字节
//        xssfSheet.setDefaultColumnWidth((short) 100);
//
//        /**
//         * 3.Excel第一行: 合并单元格可以说明导入注意事项等
//         */
//        // 在sheet里创建第一行，参数为行索引(excel的行)
//        XSSFRow firstRow = xssfSheet.createRow(0);
//        firstRow.setHeightInPoints(90);
//        // 创建单元格(excel的单元格，参数为列索引)
//        XSSFCell firstCell = firstRow.createCell(0);
//        // 合并单元格, 参数依次表示起始行(0)，截至行(0)，起始列(0)， 截至列(titleHeaders.size() - 1)
//        xssfSheet.addMergedRegion(new CellRangeAddress(0, 0, 0, titleHeaders.size() - 1));
//        // 设置单元格内容
//        firstCell.setCellValue("测评项分数导入提示：\n 1.红色字体代表必填项；\n 2.分数必须按照指定格式填写；\n 3.线下导入可能会覆盖线上测评的分数；");
//        CellStyle firstRowCellStyle = xssfWorkbook.createCellStyle();
//        // 左对齐
//        firstRowCellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
//        // 顶端对齐
//        firstRowCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);
//        // 强制单元格内容换行
//        // 必须加上setWrapText(true)才能强制换行
//        firstRowCellStyle.setWrapText(true);
//        XSSFFont tipFont = xssfWorkbook.createFont();
//        // 设置“宋体”字体
//        tipFont.setFontName("宋体");
//        tipFont.setColor(IndexedColors.RED.getIndex());
//        // 设置字体大小
//        tipFont.setFontHeightInPoints((short) 14);
//        firstRowCellStyle.setFont(tipFont);
//        firstCell.setCellStyle(firstRowCellStyle);
//
//        /**
//         * 4.Excel表头、内容
//         */
//        XSSFFont contentFont = xssfWorkbook.createFont();
//        XSSFCellStyle contentCellStyle;
//        // Excel模板表头相关信息设置 导出的Excel的标题列
//        for (
//                int i = 0; i < titleHeaders.size(); i++) {
//            Map<String, Object> titleHeader = titleHeaders.get(i);
//            XSSFCell cell = xssfRow.createCell(i);
//            String type = titleHeader.get("TYPE").toString();
//            String value = titleHeader.get("VALUE").toString();
//            String realText = value;
////            if (value.length() > 7) {
////                realText = value.substring(0, 7) + "...";
////            }
//            XSSFRichTextString text = new XSSFRichTextString(realText);
//            cell.setCellValue(text);
//
//            // 设置批注 (对表头超长的时候,设置一些提示信息)
//            Sheet sheet = cell.getSheet();
//            Drawing p = sheet.createDrawingPatriarch();
//            XSSFClientAnchor an = new XSSFClientAnchor(0, 0, 0, 0, 3, 0, 5, 5);
//            Comment comment = p.createCellComment(an);
//            XSSFRichTextString rtf = new XSSFRichTextString(value);
//            Font commentFormatter = sheet.getWorkbook().createFont();
//            rtf.applyFont(commentFormatter);
//            comment.setString(rtf);
//            cell.setCellComment(comment);
//
//            switch (type) {
//                case "FIXED":
//                    // 设置字体样式等
//                    contentCellStyle = buildContentCellStyle(contentFont, xssfWorkbook);
//                    cell.setCellStyle(contentCellStyle);
//                    break;
//                case "LABEL":
//                    cell.setCellStyle(xssfCellStyle);
//                    break;
//                default:
//                    break;
//            }
//        }
//        return xssfWorkbook;
//    }
//
//    /**
//     * 组装Excel必填项的一些样式
//     */
//    private static XSSFCellStyle buildContentCellStyle(XSSFFont contentFont, XSSFWorkbook xssfWorkbook) {
//        XSSFCellStyle contentCellStyle = xssfWorkbook.createCellStyle();
//        // 粗体
//        contentFont.setBold(true);
//        // 字体颜色
//        contentFont.setColor(IndexedColors.RED.getIndex());
//        contentFont.setFontName("宋体");
//        // 设置字体大小
//        contentFont.setFontHeightInPoints((short) 14);
//        contentCellStyle.setFont(contentFont);
//        // 水平居中
//        contentCellStyle.setAlignment(HorizontalAlignment.CENTER);
//        // 垂直居中
//        contentCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//        // 设置图案样式
//        contentCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//        // 设置图案颜色
//        contentCellStyle.setFillForegroundColor(IndexedColors.YELLOW.index);
//        return contentCellStyle;
//    }
//
//
//}
